1. Field of the Invention
The present invention relates generally to a program run monitoring system for a multiprocessor system. More particularly, the present invention is concerned with a program run information gathering system capable of gathering or collecting information concerning distribution of program runs in a multiprocessor system.
2. Description of the Prior Art
In recent years, multiprocessor systems, including a plurality of interlinked processors, are increasingly being used in numerous fields of applications. To operate such a multiprocessor system with high efficiency and performance, tasks must be allocated to the individual processors as uniformly as possible (i.e., to distribute the programs run on the individual processors as evenly as possible). Under the circumstances, a demand exists for a technique which allows information about programs, running on the individual processors, to be available accurately and inexpensively.
Heretofore, in the multiprocessor-based computer system, data, for checking or examining distribution of programs running on the individual processors is obtained by collecting context information, such as program status words (PSW), program counters (PC) and instruction codes using a timer interrupt. However, with the presented program run data gathering system, context information can not be obtained from a kernel of an operating system (OS), when the (OS) is operating in an interrupt disabled mode, i.e., the interrupt to the kernel is masked or inhibited. In other words, the prior art technique suffers in that precise information concerning distribution of program runs in the multiprocessor system can not be made available for the whole multiprocessor system inclusive of the (OS) kernel.
Moreover, the multiprocessor system known, heretofore, adopts an arrangement in which each individual processor cumulatively stores information concerning the run of the loaded program in a memory dedicated to each individual processor. Accordingly, when a failure such as crash, for example, takes place in one of the processors, information or data of that processor will volatilize, incurring loss of the data, The loss of data, due to a crash, may be prevented by allowing each individual processors to directly use an external storage medium such as a file as a medium, for cumulatively storing program run information. In that case, however, overhead, for data input/output to the external storage medium will necessarily increase, giving rise to other problems.